home *** CD-ROM | disk | FTP | other *** search
/ Erotic Games: Memory / Erotic Games: Memory.iso / mac / air_installers / AdobeAIR.exe / setup.swf / scripts / mx / skins / halo / PanelSkin.as < prev    next >
Text File  |  2009-02-12  |  8KB  |  218 lines

  1. package mx.skins.halo
  2. {
  3.    import flash.display.GradientType;
  4.    import flash.display.Graphics;
  5.    import flash.utils.describeType;
  6.    import flash.utils.getQualifiedClassName;
  7.    import mx.core.EdgeMetrics;
  8.    import mx.core.FlexVersion;
  9.    import mx.core.IContainer;
  10.    import mx.core.IUIComponent;
  11.    import mx.core.mx_internal;
  12.    
  13.    use namespace mx_internal;
  14.    
  15.    public class PanelSkin extends HaloBorder
  16.    {
  17.       
  18.       mx_internal static const VERSION:String = "3.0.0.0";
  19.       
  20.       private static var panels:Object = {};
  21.        
  22.       
  23.       private var oldControlBarHeight:Number;
  24.       
  25.       protected var _panelBorderMetrics:EdgeMetrics;
  26.       
  27.       private var oldHeaderHeight:Number;
  28.       
  29.       public function PanelSkin()
  30.       {
  31.          super();
  32.       }
  33.       
  34.       private static function isPanel(param1:Object) : Boolean
  35.       {
  36.          var s:String = null;
  37.          var x:XML = null;
  38.          var parent:Object = param1;
  39.          s = getQualifiedClassName(parent);
  40.          if(panels[s] == 1)
  41.          {
  42.             return true;
  43.          }
  44.          if(panels[s] == 0)
  45.          {
  46.             return false;
  47.          }
  48.          if(s == "mx.containers::Panel")
  49.          {
  50.             panels[s] == 1;
  51.             return true;
  52.          }
  53.          x = describeType(parent);
  54.          var xmllist:XMLList = x.extendsClass.(@type == "mx.containers::Panel");
  55.          if(xmllist.length() == 0)
  56.          {
  57.             panels[s] = 0;
  58.             return false;
  59.          }
  60.          panels[s] = 1;
  61.          return true;
  62.       }
  63.       
  64.       override public function styleChanged(param1:String) : void
  65.       {
  66.          super.styleChanged(param1);
  67.          if(param1 == null || param1 == "styleName" || param1 == "borderStyle" || param1 == "borderThickness" || param1 == "borderThicknessTop" || param1 == "borderThicknessBottom" || param1 == "borderThicknessLeft" || param1 == "borderThicknessRight" || param1 == "borderSides")
  68.          {
  69.             _panelBorderMetrics = null;
  70.          }
  71.          invalidateDisplayList();
  72.       }
  73.       
  74.       override mx_internal function drawBorder(param1:Number, param2:Number) : void
  75.       {
  76.          var _loc4_:Number = NaN;
  77.          var _loc5_:Number = NaN;
  78.          var _loc6_:Number = NaN;
  79.          var _loc7_:Graphics = null;
  80.          var _loc8_:IContainer = null;
  81.          var _loc9_:EdgeMetrics = null;
  82.          super.drawBorder(param1,param2);
  83.          if(FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0)
  84.          {
  85.             return;
  86.          }
  87.          var _loc3_:String = getStyle("borderStyle");
  88.          if(_loc3_ == "default")
  89.          {
  90.             _loc4_ = getStyle("backgroundAlpha");
  91.             _loc5_ = getStyle("borderAlpha");
  92.             backgroundAlphaName = "borderAlpha";
  93.             radiusObj = null;
  94.             radius = getStyle("cornerRadius");
  95.             bRoundedCorners = getStyle("roundedBottomCorners").toString().toLowerCase() == "true";
  96.             _loc6_ = !!mx_internal::bRoundedCorners ? Number(mx_internal::radius) : Number(0);
  97.             _loc7_ = graphics;
  98.             drawDropShadow(0,0,param1,param2,mx_internal::radius,mx_internal::radius,_loc6_,_loc6_);
  99.             if(!mx_internal::bRoundedCorners)
  100.             {
  101.                radiusObj = {};
  102.             }
  103.             if(_loc8_ = parent as IContainer)
  104.             {
  105.                _loc9_ = _loc8_.viewMetrics;
  106.                backgroundHole = {
  107.                   "x":_loc9_.left,
  108.                   "y":_loc9_.top,
  109.                   "w":Math.max(0,param1 - _loc9_.left - _loc9_.right),
  110.                   "h":Math.max(0,param2 - _loc9_.top - _loc9_.bottom),
  111.                   "r":0
  112.                };
  113.                if(mx_internal::backgroundHole.w > 0 && mx_internal::backgroundHole.h > 0)
  114.                {
  115.                   if(_loc4_ != _loc5_)
  116.                   {
  117.                      drawDropShadow(mx_internal::backgroundHole.x,mx_internal::backgroundHole.y,mx_internal::backgroundHole.w,mx_internal::backgroundHole.h,0,0,0,0);
  118.                   }
  119.                   _loc7_.beginFill(Number(mx_internal::backgroundColor),_loc4_);
  120.                   _loc7_.drawRect(mx_internal::backgroundHole.x,mx_internal::backgroundHole.y,mx_internal::backgroundHole.w,mx_internal::backgroundHole.h);
  121.                   _loc7_.endFill();
  122.                }
  123.             }
  124.             backgroundColor = getStyle("borderColor");
  125.          }
  126.       }
  127.       
  128.       override public function get borderMetrics() : EdgeMetrics
  129.       {
  130.          var _loc4_:Number = NaN;
  131.          if(FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0)
  132.          {
  133.             return super.borderMetrics;
  134.          }
  135.          var _loc1_:Boolean = isPanel(parent);
  136.          var _loc2_:IUIComponent = !!_loc1_ ? Object(parent)._controlBar : null;
  137.          var _loc3_:Number = !!_loc1_ ? Number(Object(parent).getHeaderHeightProxy()) : Number(NaN);
  138.          if(_loc2_ && _loc2_.includeInLayout)
  139.          {
  140.             _loc4_ = _loc2_.getExplicitOrMeasuredHeight();
  141.          }
  142.          if(_loc4_ != oldControlBarHeight && !(isNaN(oldControlBarHeight) && isNaN(_loc4_)))
  143.          {
  144.             _panelBorderMetrics = null;
  145.          }
  146.          if(_loc3_ != oldHeaderHeight && !(isNaN(_loc3_) && isNaN(oldHeaderHeight)))
  147.          {
  148.             _panelBorderMetrics = null;
  149.          }
  150.          if(_panelBorderMetrics)
  151.          {
  152.             return _panelBorderMetrics;
  153.          }
  154.          var _loc5_:EdgeMetrics = super.borderMetrics;
  155.          var _loc6_:EdgeMetrics = new EdgeMetrics(0,0,0,0);
  156.          var _loc7_:Number = getStyle("borderThickness");
  157.          var _loc8_:Number = getStyle("borderThicknessLeft");
  158.          var _loc9_:Number = getStyle("borderThicknessTop");
  159.          var _loc10_:Number = getStyle("borderThicknessRight");
  160.          var _loc11_:Number = getStyle("borderThicknessBottom");
  161.          _loc6_.left = _loc5_.left + (!!isNaN(_loc8_) ? _loc7_ : _loc8_);
  162.          _loc6_.top = _loc5_.top + (!!isNaN(_loc9_) ? _loc7_ : _loc9_);
  163.          _loc6_.right = _loc5_.bottom + (!!isNaN(_loc10_) ? _loc7_ : _loc10_);
  164.          _loc6_.bottom = _loc5_.bottom + (!!isNaN(_loc11_) ? (_loc2_ && !isNaN(_loc9_) ? _loc9_ : (!!isNaN(_loc8_) ? _loc7_ : _loc8_)) : _loc11_);
  165.          oldHeaderHeight = _loc3_;
  166.          if(!isNaN(_loc3_))
  167.          {
  168.             _loc6_.top += _loc3_;
  169.          }
  170.          oldControlBarHeight = _loc4_;
  171.          if(!isNaN(_loc4_))
  172.          {
  173.             _loc6_.bottom += _loc4_;
  174.          }
  175.          _panelBorderMetrics = _loc6_;
  176.          return _panelBorderMetrics;
  177.       }
  178.       
  179.       override mx_internal function drawBackground(param1:Number, param2:Number) : void
  180.       {
  181.          var _loc3_:Array = null;
  182.          var _loc4_:Number = NaN;
  183.          super.drawBackground(param1,param2);
  184.          if(getStyle("headerColors") == null && getStyle("borderStyle") == "default")
  185.          {
  186.             _loc3_ = getStyle("highlightAlphas");
  187.             _loc4_ = !!_loc3_ ? Number(_loc3_[0]) : Number(0.3);
  188.             drawRoundRect(0,0,param1,param2,{
  189.                "tl":mx_internal::radius,
  190.                "tr":mx_internal::radius,
  191.                "bl":0,
  192.                "br":0
  193.             },16777215,_loc4_,null,GradientType.LINEAR,null,{
  194.                "x":0,
  195.                "y":1,
  196.                "w":param1,
  197.                "h":param2 - 1,
  198.                "r":{
  199.                   "tl":mx_internal::radius,
  200.                   "tr":mx_internal::radius,
  201.                   "bl":0,
  202.                   "br":0
  203.                }
  204.             });
  205.          }
  206.       }
  207.       
  208.       override mx_internal function getBackgroundColorMetrics() : EdgeMetrics
  209.       {
  210.          if(getStyle("borderStyle") == "default")
  211.          {
  212.             return EdgeMetrics.EMPTY;
  213.          }
  214.          return super.borderMetrics;
  215.       }
  216.    }
  217. }
  218.